const mongoose = require('mongoose');

const activityLogSchema = new mongoose.Schema({
  type: {
    type: String,
    required: true,
    enum: ['user', 'video', 'post', 'comment', 'category', 'system'], // 活动类型
  },
  description: {
    type: String,
    required: true, // 活动描述
  },
  userId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User', // 操作用户 (可选, 系统操作可能没有)
  },
  targetId: {
    type: mongoose.Schema.Types.ObjectId, // 操作目标ID (如视频ID, 用户ID)
  },
  targetType: {
    type: String, // 操作目标类型 (如 'Video', 'User')
  },
  ipAddress: {
    type: String, // 操作者IP地址 (可选)
  },
  details: {
    type: mongoose.Schema.Types.Mixed, // 额外细节 (如修改前后的数据)
  },
}, {
  timestamps: true, // 自动添加 createdAt 和 updatedAt
});

// 添加索引以提高查询效率
activityLogSchema.index({ createdAt: -1 });
activityLogSchema.index({ type: 1, createdAt: -1 });
activityLogSchema.index({ userId: 1, createdAt: -1 });

const ActivityLog = mongoose.model('ActivityLog', activityLogSchema);

module.exports = ActivityLog;